#pragma once

#include "color.h"
#include "vector3.h"
#include "point.h"
//#include "light.h"

class photon
{
public:
	photon();
	photon(point _pos, vector3 _dir, color _intens, double _pow);
	~photon();
	unsigned int bounces;

	point getPosition();
	vector3 getDirection();
	color getIntensity();
	double getPower();
	bool isinside();
	void setPosition(point Position);
	void setDirection(vector3 Direction);
	void setIntensity(color Intensity);
	void setPower(double Power);
	void scalePower(double scaleFactor);
	void setIsInside(bool isOrIsNot);

	double distanceFrom(point from);

	photon & operator=( const photon &other );
	bool operator==( const photon &other );
	bool operator!=( const photon &other );
	bool operator>( photon &other );
	bool operator<( photon &other );
	bool operator>=( photon &other );
	bool operator<=( photon &other );
	
private:
	point	position;
	vector3 direction;
	color	intensity;
	double	power;
	bool	inside;

};